home *** CD-ROM | disk | FTP | other *** search
/ IRIX 6.2 Development Libraries / SGI IRIX 6.2 Development Libraries.iso / dist / complib.idb / usr / share / catman / p_man / cat3 / complib / chpgv.z / chpgv
Text File  |  1996-03-14  |  5KB  |  133 lines

  1.  
  2.  
  3.  
  4. CCCCHHHHPPPPGGGGVVVV((((3333FFFF))))                                                            CCCCHHHHPPPPGGGGVVVV((((3333FFFF))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      CHPGV - compute all the eigenvalues and, optionally, the eigenvectors of
  10.      a complex generalized Hermitian-definite eigenproblem, of the form
  11.      A*x=(lambda)*B*x, A*Bx=(lambda)*x, or B*A*x=(lambda)*x
  12.  
  13. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  14.      SUBROUTINE CHPGV( ITYPE, JOBZ, UPLO, N, AP, BP, W, Z, LDZ, WORK, RWORK,
  15.                        INFO )
  16.  
  17.          CHARACTER     JOBZ, UPLO
  18.  
  19.          INTEGER       INFO, ITYPE, LDZ, N
  20.  
  21.          REAL          RWORK( * ), W( * )
  22.  
  23.          COMPLEX       AP( * ), BP( * ), WORK( * ), Z( LDZ, * )
  24.  
  25. PPPPUUUURRRRPPPPOOOOSSSSEEEE
  26.      CHPGV computes all the eigenvalues and, optionally, the eigenvectors of a
  27.      complex generalized Hermitian-definite eigenproblem, of the form
  28.      A*x=(lambda)*B*x,  A*Bx=(lambda)*x,  or B*A*x=(lambda)*x.  Here A and B
  29.      are assumed to be Hermitian, stored in packed format, and B is also
  30.      positive definite.
  31.  
  32.  
  33. AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
  34.      ITYPE   (input) INTEGER
  35.              Specifies the problem type to be solved:
  36.              = 1:  A*x = (lambda)*B*x
  37.              = 2:  A*B*x = (lambda)*x
  38.              = 3:  B*A*x = (lambda)*x
  39.  
  40.      JOBZ    (input) CHARACTER*1
  41.              = 'N':  Compute eigenvalues only;
  42.              = 'V':  Compute eigenvalues and eigenvectors.
  43.  
  44.      UPLO    (input) CHARACTER*1
  45.              = 'U':  Upper triangles of A and B are stored;
  46.              = 'L':  Lower triangles of A and B are stored.
  47.  
  48.      N       (input) INTEGER
  49.              The order of the matrices A and B.  N >= 0.
  50.  
  51.      AP      (input/output) COMPLEX array, dimension (N*(N+1)/2)
  52.              On entry, the upper or lower triangle of the Hermitian matrix A,
  53.              packed columnwise in a linear array.  The j-th column of A is
  54.              stored in the array AP as follows:  if UPLO = 'U', AP(i + (j-
  55.              1)*j/2) = A(i,j) for 1<=i<=j; if UPLO = 'L', AP(i + (j-1)*(2*n-
  56.              j)/2) = A(i,j) for j<=i<=n.
  57.  
  58.              On exit, the contents of AP are destroyed.
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. CCCCHHHHPPPPGGGGVVVV((((3333FFFF))))                                                            CCCCHHHHPPPPGGGGVVVV((((3333FFFF))))
  71.  
  72.  
  73.  
  74.      BP      (input/output) COMPLEX array, dimension (N*(N+1)/2)
  75.              On entry, the upper or lower triangle of the Hermitian matrix B,
  76.              packed columnwise in a linear array.  The j-th column of B is
  77.              stored in the array BP as follows:  if UPLO = 'U', BP(i + (j-
  78.              1)*j/2) = B(i,j) for 1<=i<=j; if UPLO = 'L', BP(i + (j-1)*(2*n-
  79.              j)/2) = B(i,j) for j<=i<=n.
  80.  
  81.              On exit, the triangular factor U or L from the Cholesky
  82.              factorization B = U**H*U or B = L*L**H, in the same storage
  83.              format as B.
  84.  
  85.      W       (output) REAL array, dimension (N)
  86.              If INFO = 0, the eigenvalues in ascending order.
  87.  
  88.      Z       (output) COMPLEX array, dimension (LDZ, N)
  89.              If JOBZ = 'V', then if INFO = 0, Z contains the matrix Z of
  90.              eigenvectors.  The eigenvectors are normalized as follows:  if
  91.              ITYPE = 1 or 2, Z**H*B*Z = I; if ITYPE = 3, Z**H*inv(B)*Z = I.
  92.              If JOBZ = 'N', then Z is not referenced.
  93.  
  94.      LDZ     (input) INTEGER
  95.              The leading dimension of the array Z.  LDZ >= 1, and if JOBZ =
  96.              'V', LDZ >= max(1,N).
  97.  
  98.      WORK    (workspace) COMPLEX array, dimension (max(1, 2*N-1))
  99.  
  100.      RWORK   (workspace) REAL array, dimension (max(1, 3*N-2))
  101.  
  102.      INFO    (output) INTEGER
  103.              = 0:  successful exit
  104.              < 0:  if INFO = -i, the i-th argument had an illegal value
  105.              > 0:  CPPTRF or CHPEV returned an error code:
  106.              <= N:  if INFO = i, CHPEV failed to converge; i off-diagonal
  107.              elements of an intermediate tridiagonal form did not convergeto
  108.              zero; > N:   if INFO = N + i, for 1 <= i <= n, then the leading
  109.              minor of order i of B is not positive definite.  The
  110.              factorization of B could not be completed and no eigenvalues or
  111.              eigenvectors were computed.
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.